function dateFormat(fmt, date) {
	let ret;
	const opt = {
		"Y+": date.getFullYear().toString(), // 年
		"m+": (date.getMonth() + 1).toString(), // 月
		"d+": date.getDate().toString(), // 日
		"H+": date.getHours().toString(), // 时
		"M+": date.getMinutes().toString(), // 分
		"S+": date.getSeconds().toString() // 秒
		// 有其他格式化字符需求可以继续添加，必须转化成字符串
	};
	for (let k in opt) {
		ret = new RegExp("(" + k + ")").exec(fmt);
		if (ret) {
			fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
		};
	};
	return fmt;
}


//引入模块
const Mock = require('mockjs');

const teachers = ['老王', '老杨', '老梁', '老唐'];

module.exports = Mock.mock({
	//当前页返回的数据
	'list|4': [{
		'id|+1': 1,
		'className': function() {
			return `web${this.id+50}`;
		},
		'classType': '前端',
		'classTeacher': function() {
			return teachers[this.id - 1];
		},
		'startDate': function() {
			let dayStr = Mock.Random.now('day');
			let nowDate = new Date(dayStr);
			nowDate.setMonth(nowDate.getMonth() - this.id);
			return dateFormat('YYYY-mm-dd', nowDate);
		},
		'endDate': function() {
			let startDate = new Date(this.startDate);
			startDate.setMonth(startDate.getMonth() + 6);
			return dateFormat('YYYY-mm-dd', startDate);
		},
		'students': function() {
			return Mock.mock({
				'students|10': [{
					'id|+1': 1000,
					'name': '@cname',
					'sex|1': ['男', '女'],
					'age|18-20': 1,
					'birth': function() {
						let dayStr = Mock.Random.now('day');
						let nowDate = new Date(dayStr);
						//function函数中的this指向当前对象
						nowDate.setFullYear(nowDate.getFullYear() - this.age);
						return dateFormat('YYYY-mm-dd', nowDate);
					},
					//箭头函数的this指向外层对象
					'className': () => this.className,
					'classType': () => this.classType,
					'phone|13611111111-13699999999': 1,
					'address': '@county(true)',
					'score|10-100': 1
				}]
			}).students
		}
	}]
})

